package com.github.cakin.shiro.chapter21.service;

import com.github.cakin.shiro.chapter21.entity.Role;

import java.util.List;
import java.util.Set;

/**
 * @className: RoleService
 * @description: 角色服务
 * @date: 2020/5/26
 * @author: cakin
 */
public interface RoleService {
    /**
     * 功能描述：创建角色
     *
     * @author cakin
     * @date 2020/5/26
     * @param role 角色
     * @return Role
     */
    public Role createRole(Role role);
    /**
     * 功能描述：更新角色
     *
     * @author cakin
     * @date 2020/5/26
     * @param role 角色
     * @return Role
     */
    public Role updateRole(Role role);
    /**
     * 功能描述：根据角色I删除角色
     *
     * @author cakin
     * @date 2020/5/26
     * @param roleId 角色Id
     */
    public void deleteRole(Long roleId);
    /**
     * 功能描述：根据角色Id查找角色角色
     *
     * @author cakin
     * @date 2020/5/26
     * @param roleId 角色Id
     * @return Role
     */
    public Role findOne(Long roleId);
    /**
     * 功能描述：角色列表
     *
     * @author cakin
     * @date 2020/5/26
     * @return Role
     */
    public List<Role> findAll();

    /**
     * 根据角色编号得到角色标识符列表
     * @param roleIds 角色编号
     * @author cakin
     * @date 2020/5/26
     * @return Set<String> 标识符标识符列表
     */
    Set<String> findRoles(Long... roleIds);

    /**
     * 根据角色编号得到权限字符串列表
     * @param roleIds 角色编号
     * @return Set<String> 权限字符串列表
     */
    Set<String> findPermissions(Long[] roleIds);
}
